************************************************************************/
static void
-append_char (BroadwayOutput *output, char c)
+append_uint8 (BroadwayOutput *output, guint8 c)
{
g_string_append_c (output->buf, c);
}
static void
write_header(BroadwayOutput *output, char op)
{
- append_char (output, op);
+ append_uint8 (output, op);
append_uint32 (output, output->serial++);
}
};
typedef enum {
- BROADWAY_EVENT_ENTER = 'e',
- BROADWAY_EVENT_LEAVE = 'l',
- BROADWAY_EVENT_POINTER_MOVE = 'm',
- BROADWAY_EVENT_BUTTON_PRESS = 'b',
- BROADWAY_EVENT_BUTTON_RELEASE = 'B',
- BROADWAY_EVENT_TOUCH = 't',
- BROADWAY_EVENT_SCROLL = 's',
- BROADWAY_EVENT_KEY_PRESS = 'k',
- BROADWAY_EVENT_KEY_RELEASE = 'K',
- BROADWAY_EVENT_GRAB_NOTIFY = 'g',
- BROADWAY_EVENT_UNGRAB_NOTIFY = 'u',
- BROADWAY_EVENT_CONFIGURE_NOTIFY = 'w',
- BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 'd',
- BROADWAY_EVENT_FOCUS = 'f',
- BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 'F',
+ BROADWAY_EVENT_ENTER = 0,
+ BROADWAY_EVENT_LEAVE = 1,
+ BROADWAY_EVENT_POINTER_MOVE = 2,
+ BROADWAY_EVENT_BUTTON_PRESS = 3,
+ BROADWAY_EVENT_BUTTON_RELEASE = 4,
+ BROADWAY_EVENT_TOUCH = 5,
+ BROADWAY_EVENT_SCROLL = 6,
+ BROADWAY_EVENT_KEY_PRESS = 7,
+ BROADWAY_EVENT_KEY_RELEASE = 8,
+ BROADWAY_EVENT_GRAB_NOTIFY = 9,
+ BROADWAY_EVENT_UNGRAB_NOTIFY = 10,
+ BROADWAY_EVENT_CONFIGURE_NOTIFY = 11,
+ BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 12,
+ BROADWAY_EVENT_FOCUS = 13,
+ BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 14,
} BroadwayEventType;
typedef enum {
- BROADWAY_OP_GRAB_POINTER = 'g',
- BROADWAY_OP_UNGRAB_POINTER = 'u',
- BROADWAY_OP_NEW_SURFACE = 's',
- BROADWAY_OP_SHOW_SURFACE = 'S',
- BROADWAY_OP_HIDE_SURFACE = 'H',
- BROADWAY_OP_RAISE_SURFACE = 'r',
- BROADWAY_OP_LOWER_SURFACE = 'R',
- BROADWAY_OP_DESTROY_SURFACE = 'd',
- BROADWAY_OP_MOVE_RESIZE = 'm',
- BROADWAY_OP_SET_TRANSIENT_FOR = 'p',
- BROADWAY_OP_PUT_RGB = 'i',
- BROADWAY_OP_REQUEST_AUTH = 'l',
- BROADWAY_OP_AUTH_OK = 'L',
- BROADWAY_OP_DISCONNECTED = 'D',
- BROADWAY_OP_SURFACE_UPDATE = 'b',
- BROADWAY_OP_SET_SHOW_KEYBOARD = 'k',
- BROADWAY_OP_UPLOAD_TEXTURE = 't',
- BROADWAY_OP_RELEASE_TEXTURE = 'T',
- BROADWAY_OP_SET_NODES = 'n',
- BROADWAY_OP_ROUNDTRIP = 'F',
+ BROADWAY_OP_GRAB_POINTER = 0,
+ BROADWAY_OP_UNGRAB_POINTER = 1,
+ BROADWAY_OP_NEW_SURFACE = 2,
+ BROADWAY_OP_SHOW_SURFACE = 3,
+ BROADWAY_OP_HIDE_SURFACE = 4,
+ BROADWAY_OP_RAISE_SURFACE = 5,
+ BROADWAY_OP_LOWER_SURFACE = 6,
+ BROADWAY_OP_DESTROY_SURFACE = 7,
+ BROADWAY_OP_MOVE_RESIZE = 8,
+ BROADWAY_OP_SET_TRANSIENT_FOR = 9,
+ BROADWAY_OP_DISCONNECTED = 10,
+ BROADWAY_OP_SURFACE_UPDATE = 11,
+ BROADWAY_OP_SET_SHOW_KEYBOARD = 12,
+ BROADWAY_OP_UPLOAD_TEXTURE = 13,
+ BROADWAY_OP_RELEASE_TEXTURE = 14,
+ BROADWAY_OP_SET_NODES = 15,
+ BROADWAY_OP_ROUNDTRIP = 16,
} BroadwayOpType;
typedef struct {
msg.base.type = ntohl (*p++);
msg.base.serial = ntohl (*p++);
+
time_ = ntohl (*p++);
if (time_ == 0) {
const BROADWAY_NODE_OP_PATCH_TEXTURE = 3;
const BROADWAY_NODE_OP_PATCH_TRANSFORM = 4;
-const BROADWAY_OP_GRAB_POINTER = 'g';
-const BROADWAY_OP_UNGRAB_POINTER = 'u';
-const BROADWAY_OP_NEW_SURFACE = 's';
-const BROADWAY_OP_SHOW_SURFACE = 'S';
-const BROADWAY_OP_HIDE_SURFACE = 'H';
-const BROADWAY_OP_RAISE_SURFACE = 'r';
-const BROADWAY_OP_LOWER_SURFACE = 'R';
-const BROADWAY_OP_DESTROY_SURFACE = 'd';
-const BROADWAY_OP_MOVE_RESIZE = 'm';
-const BROADWAY_OP_SET_TRANSIENT_FOR = 'p';
-const BROADWAY_OP_PUT_RGB = 'i';
-const BROADWAY_OP_REQUEST_AUTH = 'l';
-const BROADWAY_OP_AUTH_OK = 'L';
-const BROADWAY_OP_DISCONNECTED = 'D';
-const BROADWAY_OP_SURFACE_UPDATE = 'b';
-const BROADWAY_OP_SET_SHOW_KEYBOARD = 'k';
-const BROADWAY_OP_UPLOAD_TEXTURE = 't';
-const BROADWAY_OP_RELEASE_TEXTURE = 'T';
-const BROADWAY_OP_SET_NODES = 'n';
-const BROADWAY_OP_ROUNDTRIP = 'F';
-
-const BROADWAY_EVENT_ENTER = 'e';
-const BROADWAY_EVENT_LEAVE = 'l';
-const BROADWAY_EVENT_POINTER_MOVE = 'm';
-const BROADWAY_EVENT_BUTTON_PRESS = 'b';
-const BROADWAY_EVENT_BUTTON_RELEASE = 'B';
-const BROADWAY_EVENT_TOUCH = 't';
-const BROADWAY_EVENT_SCROLL = 's';
-const BROADWAY_EVENT_KEY_PRESS = 'k';
-const BROADWAY_EVENT_KEY_RELEASE = 'K';
-const BROADWAY_EVENT_GRAB_NOTIFY = 'g';
-const BROADWAY_EVENT_UNGRAB_NOTIFY = 'u';
-const BROADWAY_EVENT_CONFIGURE_NOTIFY = 'w';
-const BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 'd';
-const BROADWAY_EVENT_FOCUS = 'f';
-const BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 'F';
+const BROADWAY_OP_GRAB_POINTER = 0;
+const BROADWAY_OP_UNGRAB_POINTER = 1;
+const BROADWAY_OP_NEW_SURFACE = 2;
+const BROADWAY_OP_SHOW_SURFACE = 3;
+const BROADWAY_OP_HIDE_SURFACE = 4;
+const BROADWAY_OP_RAISE_SURFACE = 5;
+const BROADWAY_OP_LOWER_SURFACE = 6;
+const BROADWAY_OP_DESTROY_SURFACE = 7;
+const BROADWAY_OP_MOVE_RESIZE = 8;
+const BROADWAY_OP_SET_TRANSIENT_FOR = 9;
+const BROADWAY_OP_DISCONNECTED = 10;
+const BROADWAY_OP_SURFACE_UPDATE = 11;
+const BROADWAY_OP_SET_SHOW_KEYBOARD = 12;
+const BROADWAY_OP_UPLOAD_TEXTURE = 13;
+const BROADWAY_OP_RELEASE_TEXTURE = 14;
+const BROADWAY_OP_SET_NODES = 15;
+const BROADWAY_OP_ROUNDTRIP = 16;
+
+const BROADWAY_EVENT_ENTER = 0;
+const BROADWAY_EVENT_LEAVE = 1;
+const BROADWAY_EVENT_POINTER_MOVE = 2;
+const BROADWAY_EVENT_BUTTON_PRESS = 3;
+const BROADWAY_EVENT_BUTTON_RELEASE = 4;
+const BROADWAY_EVENT_TOUCH = 5;
+const BROADWAY_EVENT_SCROLL = 6;
+const BROADWAY_EVENT_KEY_PRESS = 7;
+const BROADWAY_EVENT_KEY_RELEASE = 8;
+const BROADWAY_EVENT_GRAB_NOTIFY = 9;
+const BROADWAY_EVENT_UNGRAB_NOTIFY = 10;
+const BROADWAY_EVENT_CONFIGURE_NOTIFY = 11;
+const BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 12;
+const BROADWAY_EVENT_FOCUS = 13;
+const BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 14;
const DISPLAY_OP_REPLACE_CHILD = 0;
const DISPLAY_OP_APPEND_CHILD = 1;
while (res && cmd.pos < cmd.length) {
var id, x, y, w, h, q, surface;
var saved_pos = cmd.pos;
- var command = cmd.get_char();
+ var command = cmd.get_uint8();
lastSerial = cmd.get_32();
switch (command) {
case BROADWAY_OP_DISCONNECTED:
this.pos = 0;
}
-BinCommands.prototype.get_char = function() {
- return String.fromCharCode(this.dataview.getUint8(this.pos++));
+BinCommands.prototype.get_uint8 = function() {
+ return this.dataview.getUint8(this.pos++);
};
BinCommands.prototype.get_bool = function() {
return this.dataview.getUint8(this.pos++) != 0;
if (inputSocket == null)
return;
- var fullArgs = [cmd.charCodeAt(0), lastSerial, lastTimeStamp].concat(args);
+ var fullArgs = [cmd, lastSerial, lastTimeStamp].concat(args);
var buffer = new ArrayBuffer(fullArgs.length * 4);
var view = new DataView(buffer);
fullArgs.forEach(function(arg, i) {
break;
case BROADWAY_EVENT_BUTTON_PRESS:
case BROADWAY_EVENT_BUTTON_RELEASE:
- if (message->base.type != 'b' &&
+ if (message->base.type != BROADWAY_EVENT_BUTTON_PRESS &&
_gdk_broadway_moveresize_handle_event (display, message))
break;
surface = g_hash_table_lookup (display_broadway->id_ht, GINT_TO_POINTER (message->pointer.event_surface_id));
if (surface)
{
- event = gdk_event_new (message->base.type == 'b' ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE);
+ event = gdk_event_new (message->base.type == BROADWAY_EVENT_BUTTON_PRESS ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE);
event->any.surface = g_object_ref (surface);
event->button.time = message->base.time;
event->button.x = message->pointer.win_x;
GINT_TO_POINTER (message->key.surface_id));
if (surface)
{
- event = gdk_event_new (message->base.type == 'k' ? GDK_KEY_PRESS : GDK_KEY_RELEASE);
+ event = gdk_event_new (message->base.type == BROADWAY_EVENT_KEY_PRESS ? GDK_KEY_PRESS : GDK_KEY_RELEASE);
event->any.surface = g_object_ref (surface);
event->key.time = message->base.time;
event->key.keyval = message->key.key;